package map;

import com.sun.org.apache.xml.internal.utils.CharKey;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

/**
 * 统计字符串中每个字符出现的次数
 * 思路:
 * 用一个Map保存统计结果，key保存出现的字符，value保存该字符出现的次数
 * 利用字符串的charAt方法可以遍历字符串中每一个字符
 * 如果map中该字符不存在，则存入，并且对应的次数为1
 * 如果map中该字符已经存在，则根据该字符作为key提取其value(出现的次数)并对value+1再
 * 存回。
 * 遍历后输出map即可得知每个字符出现的次数。
 */
public class Test {
    public static void main(String[] args) {
        String line="thinking in java!i love java!";
        Map<Character,Integer> map=new HashMap<>();
        for (int i=0;i<line.length();i++){
            char a=line.charAt(i);

//            if (map.containsKey(a)){
//               int sum=map.get(a);
//               sum=sum+1;
//               map.put(a,sum);
//            }else {
//                map.put(a,1);
//            }
            int num = map.containsKey(a)?map.get(a)+1:1;
            map.put(a,num);
        }
        System.out.println(map);

//        Set<Map.Entry<Character,Integer>> entrySet=map.entrySet();
//        for (Map.Entry<Character,Integer> e:entrySet){
//            Character key=e.getKey();
//            Integer value=e.getValue();
//            System.out.println(key+":"+value);
//        }
    }
}
